package com.xingda.packing.dmss.enums;

import lombok.Getter;

public enum AlarmTriggerType {
    SHUNT_AREA_CODE_ERROR_MORE_THAN_THREE(-1, 1, "分流区条码连续三次拍照错误,请人工确认", "software", true, true, true, true),
    SHUNT_AREA_SNAP_ERROR_MORE_THAN_THREE(-1, 2, "分流区卡扣连续三次识别错误,请人工确认", "software", true, true, true, true),
    SHUNT_AREA_WHEEL_NO_SHUNT(-1, 3, "当前工字轮不符合装箱", "software", true, true, true, true),
    SHUNT_AREA_WHEEL_NO_AVAILABLE(-1, 4, "工字轮条码为成品,查询信息为不合格", "software", true, true, true, true),
    PRODUCT_BOX_LOCATION_1_FULL(-1, 5, "装箱位[1]已满！", "software", true, true, true, true),
    PRODUCT_BOX_LOCATION_2_FULL(-1, 6, "装箱位[2]已满！", "software", true, true, true, true),
    PRODUCT_BOX_LOCATION_3_FULL(-1, 7, "装箱位[3]已满！", "software", true, true, true, true),
    PRODUCT_BOX_LOCATION_4_FULL(-1, 8, "装箱位[4]已满！", "software", true, true, true, true),
    PRODUCT_BOX_LOCATION_5_FULL(-1, 9, "装箱位[5]已满！", "software", true, true, true, true),
    PRODUCT_BOX_LOCATION_6_FULL(-1, 10, "装箱位[6]已满！", "software", true, true, true, true),
    PRODUCT_TYPE_ERROR(-1, 11, "条码获取类型和PLC检测类型不一致", "software", true, true, true, true),
    WHEEL_ERROR_99(-1, 12, "工字轮99-条码异常!已停止系统", "software", true, true, true, true),
    WHEEL_ERROR_999(-1, 13, "工字轮999-工字轮信息查询出错！已停止系统", "software", true, true, true, true),
    WHEEL_ERROR_9999(-1, 14, "工字轮9999-工字轮未查询到信息！已停止系统", "software", true, true, true, true),
    WHEEL_ALREADY_PACKING(-1, 15, "工字轮已装箱！已停止系统,请人工确认装箱或重置任务", "software", true, true, true, true),
    ROBOT_TIMEOUT_NOT_MOVE(-1, 16, "机器人超时未动！", "software", true, true, true, true),
    NO_PRODUCT_TYPE(-1, 17, "未检测到工字轮类型", "software", true, true, true, true),
    CACHE_FULL(-1, 18, "缓存位已到警戒值！已停止系统", "software", true, true, true, true),
    TORQUE_VALUE_OUT_RANGE(-1, 19, "层扭转和超出范围", "software", true, true, true, true);


    AlarmTriggerType(
            int areaId, int addressIndex, String
            content,
            String classify, boolean isShow,
            boolean triggerCondition, boolean isSend, boolean isRelieveNotice) {
        this.areaId = areaId;
        this.addressIndex = addressIndex;
        this.content = content;
        this.classify = classify;
        this.isShow = isShow;
        this.triggerCondition = triggerCondition;
        this.isSend = isSend;
        this.isRelieveNotice = isRelieveNotice;
    }

    @Getter
    private final int areaId;

    @Getter
    private final int addressIndex;

    @Getter
    private final String content;

    @Getter
    private final String classify;

    @Getter
    private final boolean isShow;

    @Getter
    private final boolean triggerCondition;

    @Getter
    private final boolean isSend;

    @Getter
    private final boolean isRelieveNotice;

}
